home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.image.ImageObserver;
- import java.util.NoSuchElementException;
-
- class COffScreenView extends CWindow {
- CDrawObjectList m_DrawObjectList = new CDrawObjectList();
- Image m_OffScreenBmp;
- Graphics m_pOffScreenDC;
- Dimension m_OffScreenBmpSize;
- CRectList m_DirtyList = new CRectList();
- Color m_colBg = new Color(255, 255, 255);
- Point m_ptOffset = new Point(0, 0);
-
- boolean SetOffScreenBufferBkColour(Color var1) {
- if (var1 != null && !var1.equals(this.m_colBg)) {
- this.m_colBg = var1;
- ((Component)this).setBackground(var1);
- return true;
- } else {
- return false;
- }
- }
-
- void Render(CRect var1) {
- if (var1 == null) {
- var1.reshape(((CWindow)this).GetClientRect());
- this.m_DirtyList.RemoveAll();
- }
-
- Graphics var2 = this.m_pOffScreenDC.create();
- var2.setColor(this.m_colBg);
- var2.clipRect(var1.x, var1.y, var1.width, var1.height);
- var2.fillRect(var1.x, var1.y, var1.width + 1, var1.height + 1);
- this.RenderObjectList(var2, var1);
- }
-
- CRect RemoveDrawObject(String var1, boolean var2) {
- CRect var3 = new CRect();
- CRect var4 = new CRect();
- CDrawObj var5 = null;
- boolean var6 = false;
- boolean var7 = false;
- boolean var8 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var5 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var17) {
- var6 = true;
- }
-
- while(!var6) {
- var7 = false;
- if (var5 != null && var5.GetIconObject() != null && var5.GetIconObject().GetText().equals(var1)) {
- var3.reshape(var5.GetDrawRect());
- if (!((Rectangle)var3).isEmpty()) {
- this.InvalidateOffScreenRect(var3);
- if (((Rectangle)var4).isEmpty()) {
- var4.reshape(var3);
- } else {
- var4 = var4.union(var3);
- }
- }
-
- if (!var2 && this.m_DrawObjectList.removeElement(var5)) {
- var5.GetIconObject().FreeObject();
- Globals.theAnimThread.RemoveAnimObject(var5);
- var7 = true;
- var8 = true;
- }
- }
-
- if (var7) {
- try {
- var5 = this.m_DrawObjectList.GetCurrent();
- } catch (NoSuchElementException var16) {
- var6 = true;
- }
- } else {
- try {
- var5 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var15) {
- var6 = true;
- }
- }
- }
- } catch (Throwable var18) {
- throw var18;
- }
-
- if (var8) {
- this.CloseCoursesIfPossible();
- }
-
- return var4;
- }
-
- void DoEntryResponses() {
- CDrawObj var1 = new CDrawObj();
- boolean var2 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var1 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var9) {
- var2 = true;
- }
-
- while(!var2) {
- var1.GetIconObject().DoEntryResponse();
-
- try {
- var1 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var8) {
- var2 = true;
- }
- }
- } catch (Throwable var10) {
- throw var10;
- }
-
- }
-
- void RenderAndDrawDirtyList() {
- CRect var1 = null;
- boolean var2 = false;
-
- try {
- var1 = this.m_DirtyList.GetHead();
- } catch (NoSuchElementException var4) {
- var2 = true;
- }
-
- while(!var2) {
- this.Render(var1);
- this.Draw((Graphics)null, var1);
-
- try {
- var1 = this.m_DirtyList.GetNext();
- } catch (NoSuchElementException var3) {
- var2 = true;
- }
- }
-
- this.m_DirtyList.RemoveAll();
- }
-
- void InvalidateOffScreenRect(CRect var1) {
- if (var1 != null && !((Rectangle)var1).isEmpty()) {
- CRect var2 = new CRect();
- boolean var3 = false;
-
- try {
- var2.reshape(this.m_DirtyList.GetHead());
- if (((Rectangle)var2).equals(((CWindow)this).GetClientRect())) {
- return;
- }
- } catch (NoSuchElementException var5) {
- var3 = true;
- }
-
- while(!var3) {
- if (((Rectangle)var2).intersects(var1)) {
- var1 = var1.union(var2);
- this.m_DirtyList.removeElement(var2);
- }
-
- try {
- var2.reshape(this.m_DirtyList.GetNext());
- } catch (NoSuchElementException var4) {
- var3 = true;
- }
- }
-
- this.m_DirtyList.Add(var1);
- } else {
- var1 = new CRect(((CWindow)this).GetClientRect());
- this.m_DirtyList.RemoveAll();
- this.m_DirtyList.Add(var1);
- }
- }
-
- void RemoveDrawObject(CIconObject var1) {
- CDrawObj var2 = null;
- boolean var3 = false;
- boolean var4 = false;
- boolean var5 = false;
- if (var1 != null && !Globals.thePresView.IsLayerLocked(var1.GetZOrder())) {
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var2 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var14) {
- var3 = true;
- }
-
- while(!var3) {
- var4 = false;
- if (var2 != null && var2.GetIconObject() == var1 && this.m_DrawObjectList.removeElement(var2)) {
- this.InvalObj(var2);
- var2.GetIconObject().FreeObject();
- Globals.theAnimThread.RemoveAnimObject(var2);
- var4 = true;
- var5 = true;
- }
-
- if (var4) {
- try {
- var2 = this.m_DrawObjectList.GetCurrent();
- } catch (NoSuchElementException var13) {
- var3 = true;
- }
- } else {
- try {
- var2 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var12) {
- var3 = true;
- }
- }
- }
- } catch (Throwable var15) {
- throw var15;
- }
-
- if (var5) {
- this.CloseCoursesIfPossible();
- }
- }
-
- }
-
- CDrawObj FindDrawObject(String var1) {
- CDrawObj var2 = null;
- boolean var3 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var2 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var11) {
- var3 = true;
- }
-
- while(!var3) {
- if (var2.GetIconObject().GetText().equals(var1)) {
- CDrawObj var6 = var2;
- return var6;
- }
-
- try {
- var2 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var10) {
- var3 = true;
- }
- }
-
- return null;
- } catch (Throwable var12) {
- throw var12;
- }
- }
-
- boolean OnMouseMove(int var1, Point var2) {
- CDrawObj var3 = null;
- boolean var4 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var3 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var11) {
- var4 = true;
- }
-
- while(!var4) {
- if (var3 != null) {
- var3.GetIconObject().OnMouseMove(var1, var2, 6, var3.GetDrawRect());
- }
-
- try {
- var3 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var10) {
- var4 = true;
- }
- }
- } catch (Throwable var12) {
- throw var12;
- }
-
- if (Globals.CUR_COURSE != null) {
- Globals.CUR_COURSE.OnMouseMove(var1, var2);
- }
-
- return true;
- }
-
- void Draw(Graphics var1, CRect var2) {
- CRect var4 = new CRect();
- Graphics var3 = var1 == null ? ((CWindow)this).GetDC() : var1.create();
- var4.reshape(var2 == null ? ((CWindow)this).GetClientRect() : var2);
- if (var3 != null) {
- Graphics var5 = var3.create();
- var5.clipRect(var4.x, var4.y, var4.width, var4.height);
- var5.drawImage(this.m_OffScreenBmp, 0, 0, (ImageObserver)null);
- }
-
- }
-
- boolean OnNotify(int var1, String var2) {
- CDrawObj var3 = null;
- boolean var4 = false;
- boolean var5 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var3 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var12) {
- var4 = true;
- }
-
- while(!var4) {
- if (var3 != null && var3.GetIconObject() != null) {
- var3.GetIconObject().OnNotify(var1, var2);
- }
-
- try {
- var3 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var11) {
- var4 = true;
- }
- }
- } catch (Throwable var13) {
- throw var13;
- }
-
- if (Globals.CUR_COURSE != null) {
- var5 = Globals.CUR_COURSE.OnNotify(var1, var2);
- }
-
- return var5;
- }
-
- void CanRemoveDrawObjects(CRect var1, CIconObject var2) {
- CDrawObj var3 = null;
- boolean var4 = false;
- boolean var5 = false;
- boolean var6 = false;
- if (var1 != null && var2 != null) {
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var3 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var15) {
- var4 = true;
- }
-
- while(!var4) {
- var5 = false;
- if (var3 != null && var3.GetIconObject() != null && var3.GetIconObject() != var2 && !Globals.thePresView.IsLayerLocked(var3.GetIconObject().GetZOrder()) && var3.GetIconObject().CanFreeObject(var1) && this.m_DrawObjectList.removeElement(var3)) {
- var5 = true;
- var6 = true;
- this.InvalObj(var3);
- var3.GetIconObject().FreeObject();
- Globals.theAnimThread.RemoveAnimObject(var3);
- }
-
- if (var5) {
- try {
- var3 = this.m_DrawObjectList.GetCurrent();
- } catch (NoSuchElementException var14) {
- var4 = true;
- }
- } else {
- try {
- var3 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var13) {
- var4 = true;
- }
- }
- }
- } catch (Throwable var16) {
- throw var16;
- }
-
- if (var6) {
- this.CloseCoursesIfPossible();
- }
- }
-
- }
-
- boolean CanCloseCourse(CCourse var1) {
- CDrawObj var2 = null;
- boolean var3 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var2 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var11) {
- var3 = true;
- }
-
- while(!var3) {
- if (var2 != null && var1 == var2.GetIconObjectsCourse()) {
- var1.m_bCloseWhenPossible = true;
- boolean var6 = false;
- return var6;
- }
-
- try {
- var2 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var10) {
- var3 = true;
- }
- }
-
- return true;
- } catch (Throwable var12) {
- throw var12;
- }
- }
-
- boolean ResizeWindow(int var1, int var2) {
- boolean var3 = false;
- if (this.m_OffScreenBmp == null) {
- var3 = true;
- } else if (this.m_OffScreenBmp.getWidth((ImageObserver)null) != var1 || this.m_OffScreenBmp.getHeight((ImageObserver)null) != var2) {
- var3 = true;
- }
-
- if (var3) {
- this.m_OffScreenBmp = ((Component)this).createImage(var1, var2);
- this.m_pOffScreenDC = this.m_OffScreenBmp.getGraphics();
- ((Applet)this).resize(var1, var2);
- }
-
- return var3;
- }
-
- COffScreenView() {
- if (((Component)this).getBackground() != null) {
- this.m_colBg = ((Component)this).getBackground();
- }
-
- }
-
- void RemoveAllDrawObjects(CCourse var1, boolean var2) {
- synchronized(this.m_DrawObjectList){}
-
- try {
- if (var1 == null && var2) {
- this.m_DrawObjectList.RemoveAll();
- Globals.theAnimThread.RemoveAllAnimObjects();
- this.CloseCoursesIfPossible();
- } else {
- CDrawObj var3 = null;
- boolean var4 = false;
- boolean var5 = false;
-
- try {
- var3 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var14) {
- var4 = true;
- }
-
- while(!var4) {
- var5 = false;
- if (var3 != null && var3.GetIconObject() != null && (var1 == null || var3.GetIconObjectsCourse() == var1) && (!Globals.thePresView.IsLayerLocked(var3.GetIconObject().GetZOrder()) || var2)) {
- if (this.m_DrawObjectList.removeElement(var3)) {
- var5 = true;
- this.InvalObj(var3);
- var3.GetIconObject().FreeObject();
- Globals.theAnimThread.RemoveAnimObject(var3);
- } else {
- var4 = true;
- }
- }
-
- if (var5) {
- try {
- var3 = this.m_DrawObjectList.GetCurrent();
- } catch (NoSuchElementException var13) {
- var4 = true;
- }
- } else {
- try {
- var3 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var12) {
- var4 = true;
- }
- }
- }
- }
- } catch (Throwable var15) {
- throw var15;
- }
-
- }
-
- void RenderAndDrawWithEffect(CIconObject var1, CRect var2) {
- if (var2 == null) {
- var2 = ((CWindow)this).GetClientRect();
- }
-
- if (var1 != null) {
- if (var1.GetEffectData().m_cEffectType != 4 && var1.GetEffectData().m_cEffectType != 6) {
- this.Render(var2);
- }
-
- CEffectThread var3 = new CEffectThread(var1, var2);
- if ((var1.GetEffectData().m_nFlags & 16384) != 0) {
- var3.DoEffect();
- return;
- }
-
- var3.start();
- }
-
- }
-
- void RenderObjectList(Graphics var1, CRect var2) {
- CDrawObj var3 = null;
- boolean var4 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var3 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var11) {
- var4 = false;
- }
-
- while(!var4) {
- if (var3 != null && (var3.GetFlags() & 512) == 0) {
- var3.Render(var1, var2, 0);
- }
-
- try {
- var3 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var10) {
- var4 = true;
- }
- }
- } catch (Throwable var12) {
- throw var12;
- }
-
- }
-
- void InvalObj(CDrawObj var1) {
- CRect var2 = new CRect();
- var2.reshape(var1.GetDrawRect());
- if (!((Rectangle)var2).isEmpty()) {
- this.InvalidateOffScreenRect(var2);
- }
-
- }
-
- CDrawObj AddDrawObject(CIconObject var1, int var2, boolean var3) {
- Object var4 = null;
- boolean var5 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var4 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var12) {
- var5 = true;
- }
-
- while(!var5 && ((CDrawObj)var4).GetIconObject() != var1) {
- try {
- var4 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var11) {
- var5 = true;
- }
- }
-
- if (var5) {
- if ((var2 & 2) <= 0 && (var2 & 4) <= 0) {
- var4 = new CDrawRect(var1, var2);
- } else {
- var4 = new CDrawPoly(var1, var2);
- }
-
- this.m_DrawObjectList.Insert((CDrawObj)var4);
- }
- } catch (Throwable var13) {
- throw var13;
- }
-
- if (var4 != null && (((CDrawObj)var4).GetFlags() & 512) == 0 && (var5 || var3)) {
- if ((var2 & 2048) != 0 && var5) {
- this.RenderAndDrawWithEffect(((CDrawObj)var4).GetIconObject(), ((CDrawObj)var4).GetDrawRect());
- } else {
- this.InvalidateOffScreenRect(((CDrawObj)var4).GetDrawRect());
- }
- }
-
- return (CDrawObj)var4;
- }
-
- void RemoveAllTemporaryDrawObjects() {
- CDrawObj var1 = null;
- boolean var2 = false;
- boolean var3 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var1 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var12) {
- var2 = true;
- }
-
- while(!var2) {
- var3 = false;
- if (var1 != null) {
- if (var1.GetIconObject() != null && (var1.GetFlags() & 128) != 0) {
- if (this.m_DrawObjectList.removeElement(var1)) {
- var3 = true;
- this.InvalObj(var1);
- var1.GetIconObject().FreeObject();
- Globals.theAnimThread.RemoveAnimObject(var1);
- } else {
- var2 = true;
- }
- }
-
- var1.SetFixed();
- }
-
- if (var3) {
- try {
- var1 = this.m_DrawObjectList.GetCurrent();
- } catch (NoSuchElementException var11) {
- var2 = true;
- }
- } else {
- try {
- var1 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var10) {
- var2 = true;
- }
- }
- }
- } catch (Throwable var13) {
- throw var13;
- }
-
- }
-
- boolean OnMouseClick(int var1, int var2, Point var3) {
- CDrawObj var4 = null;
- boolean var5 = false;
- boolean var6 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var4 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var13) {
- var5 = true;
- }
-
- while(!var5) {
- if (var4 != null) {
- var4.GetIconObject().OnMouseClick(var1, var2, var3, 6, var4.GetDrawRect());
- }
-
- try {
- var4 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var12) {
- var5 = true;
- }
- }
- } catch (Throwable var14) {
- throw var14;
- }
-
- if (Globals.CUR_COURSE != null && Globals.CUR_COURSE.OnMouseClick(var1, var2, var3)) {
- var6 = true;
- }
-
- return var6;
- }
-
- void CloseCoursesIfPossible() {
- CCourse var1 = null;
- boolean var2 = false;
-
- try {
- var1 = Globals.thePresView.m_CourseList.GetHead();
- } catch (NoSuchElementException var4) {
- var2 = true;
- }
-
- while(!var2) {
- if (var1 != null && var1.m_bCloseWhenPossible && this.CanCloseCourse(var1)) {
- Globals.thePresView.CloseCourse(var1);
- }
-
- try {
- var1 = Globals.thePresView.m_CourseList.GetNext();
- } catch (NoSuchElementException var3) {
- var2 = true;
- }
- }
-
- }
-
- CRect RemoveDrawObject(byte var1, boolean var2) {
- CRect var3 = new CRect();
- if (!Globals.thePresView.IsLayerLocked((short)var1)) {
- CRect var4 = new CRect();
- CDrawObj var5 = null;
- boolean var6 = false;
- boolean var7 = false;
- boolean var8 = false;
- synchronized(this.m_DrawObjectList){}
-
- try {
- try {
- var5 = this.m_DrawObjectList.GetHead();
- } catch (NoSuchElementException var17) {
- var6 = true;
- }
-
- while(!var6) {
- var7 = false;
- if (var5 != null && var5.GetIconObject() != null && var5.GetIconObject().GetZOrder() == var1) {
- var4.reshape(var5.GetDrawRect());
- if (!((Rectangle)var4).isEmpty()) {
- this.InvalidateOffScreenRect(var4);
- if (((Rectangle)var3).isEmpty()) {
- var3.reshape(var4);
- } else {
- var3 = var3.union(var4);
- }
- }
-
- if (!var2 && this.m_DrawObjectList.removeElement(var5)) {
- var5.GetIconObject().FreeObject();
- Globals.theAnimThread.RemoveAnimObject(var5);
- var7 = true;
- var8 = true;
- }
- }
-
- if (var7) {
- try {
- var5 = this.m_DrawObjectList.GetCurrent();
- } catch (NoSuchElementException var16) {
- var6 = true;
- }
- } else {
- try {
- var5 = this.m_DrawObjectList.GetNext();
- } catch (NoSuchElementException var15) {
- var6 = true;
- }
- }
- }
- } catch (Throwable var18) {
- throw var18;
- }
-
- if (var8) {
- this.CloseCoursesIfPossible();
- }
- }
-
- return var3;
- }
- }
-